
#include "pthread.h"


// 收数据
void *r_pthread(void *arg_fd)
{
    int Sock_fd = *((int *)arg_fd);

    

    // 创建协议
    agr info;

    // 创建字符串
    char buf[1024];
    char name[128] = " ";

    while (1)
    {
        // 清空字符串  和 协议信息
        memset(buf, 0, sizeof(buf));
        memset(info.buf, 0, sizeof(info.buf));

        // 接收信息
        recv(Sock_fd, info.buf, sizeof(info.buf), 0);


        // 判断信息类型
        if (1 == info.Name.bytes) // 修改姓名
        {
            // 写入姓名
            strcpy(name, info.Name.Name);
            // 打印写入成功
            printf("昵称修改成功:[%s]\n", name);
        }

        else if (2 == info.Data.bytes)
        {
            // 打印信息
            printf("[%s]:|%s|\n", name, info.Data.Data);
        }
    }
}



// 发数据
void *w_pthread(void *arg_fd)
{
    int Sock_fd = *((int *)arg_fd);

    // 如果用户 发送信息 为 set_name

    // 创建协议
    agr info;

    // 创建字符串
    char buf[1024];

    while (1)
    {
        // 输入信息
        printf("请输入信息:");
        scanf("%s", buf);

        printf("\n");

        // 组装信息  发送名称
        if (!strcmp("set_name", buf))
        {
            printf("请输入 昵称:");
            scanf("%s" , buf);
            
            strcpy(info.Name.Name, buf);
            info.Name.bytes = 1;

            // 发送信息
            send(Sock_fd, info.buf, strlen(info.buf), 0);
            
        }
        else
        {
            // 组装信息 发送信息
            strcpy(info.Data.Data, buf);
            info.Data.bytes = 2;

            send(Sock_fd, info.buf, strlen(info.buf), 0);

        }
    }
}




